﻿using System;
using System.Collections.Generic;
using MediaBrowser.Entities;
using MediaBrowser.IRepository;

namespace MediaBrowser.Gui.Design
{
    /// <summary>
    /// Classe d'accés aux données truqué des média pour le mode design
    /// </summary>
    public class FakeMediaRepository : IMediaRepository
    {
        /// <summary>
        /// Retourne la Liste des média
        /// </summary>
        /// <returns></returns>
        public IEnumerable<Media> ListMediasByCategory(int idCategory)
        {
            var medias = new List<Media>();

            for (var index = 0; index < 5; index++)
            {
                var m = new Media(index,
                                  "name" + index,
                                  DateTime.Now,
                                  "description" + index,
                                  null,
                                  @"C:\Dev\MediaBrowser\MediaBrowser.Gui\Images\avatar.jpg",
                                  "urlContent" + index);

                for (var index2 = 0; index2 < 10; index2++)
                {
                    var m2 = new MediaItem(index2,
                                 "nameAAAAAAAAAAAAAAAAAAAAAAAAAAAAaa" + index2,
                                 DateTime.Now,
                                 "description" + index,
                                 @"C:\Dev\MediaBrowser\MediaBrowser.Gui\Images\avatar.jpg");
                    m.MediaItems.Add(m2);
                }

                medias.Add(m);
            }
            return medias;
        }

        /// <summary>
        /// Modification d'un média
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        public bool UpdateMedia(Media media)
        {
            return true;
        }

        /// <summary>
        /// Création d'un média
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        public bool CreateMedia(Media media)
        {
            return true;
        }

        /// <summary>
        /// Suppression d'un média
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        public bool DeleteMedia(Media media)
        {
            return true;
        }

        /// <summary>
        /// Nombre de Média
        /// </summary>
        /// <returns></returns>
        public int CountMedia()
        {
            return 10;
        }

        /// <summary>
        /// Création d'un nouveau media Item
        /// </summary>
        /// <param name="idMedia"></param>
        /// <param name="mediaItem"></param>
        /// <returns></returns>
        public bool CreateMediaItem(int idMedia, MediaItem mediaItem)
        {
            return true;
        }

        /// <summary>
        /// Suppression d'un média
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        public bool DeleteMediaItem(int idMedia, MediaItem mediaItem)
        {
            return true;
        }

        /// <summary>
        /// Nombre de média Item 
        /// </summary>
        /// <param name="idMedia"></param>
        /// <returns></returns>
        public int CountMediaItem(int idMedia)
        {
            return 10;
        }
    }
}
